package com.nidu.demo.file.storage;

import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * 文件存储接口
 *
 * @author auto
 */
public interface FileStorage {

    /**
     * 上传文件
     *
     * @param file 文件
     * @param path 文件路径
     * @param config 存储配置
     * @return 文件访问路径
     */
    String upload(MultipartFile file, String path, Map<String, Object> config);

    /**
     * 删除文件
     *
     * @param path 文件路径
     * @param config 存储配置
     */
    void delete(String path, Map<String, Object> config);

    /**
     * 获取文件访问URL
     *
     * @param path 文件路径
     * @param config 存储配置
     * @return 文件访问URL
     */
    String getUrl(String path, Map<String, Object> config);

    /**
     * 获取存储类型
     *
     * @return 存储类型
     */
    Integer getStorageType();
}
